The invention pertains to digital data processing and, more particularly, to methods and apparatus for file access. The invention has application, for example, in facilitating access by networked digital data processors to shared disk drives, disk arrays and other storage devices.
In early computer systems, long-term data storage was typically provided by dedicated storage devices, such as tape and disk drives, connected to a data central computer. Requests to read and write data generated by applications programs were processed by special-purpose input/output routines resident in the computer operating system. With the advent of xe2x80x9ctime sharingxe2x80x9d and other early multiprocessing techniques, multiple users could simultaneously store access dataxe2x80x94albeit only through the central storage devices.
With the rise of the personal computer (and workstation) in the 1980""s, demand by business users led to development of interconnection mechanisms that permitted otherwise independent computers to access data on one another""s storage devices. Though computer networks had been known prior to this, they typically permitted only communications, not storage sharing.
The prevalent business network that has emerged is the local area network, typically comprising xe2x80x9cclientxe2x80x9d computers (e.g., individual PCs or workstations) connected by a network to a xe2x80x9cservexe2x80x9d computer. Unlike the early computing systems in which all processing and storage occurred on a central computer, client computers usually have adequate processor and storage capacity to execute many user applications. However, they often rely on the serverxe2x80x94and its associated battery of disk drives and storage devicesxe2x80x94for other than short-term file storage and for access to shared application and data files.
An information explosion, partially brought by the rise of the corporate computing and, partially, by the Internet, is spurring further change. Less common are individual servers that reside as independent hubs of storage activity. Often many storage devices are placed on a network or switching fabric that can be accessed by several servers (such as file servers and web servers) which, in turn, service respective groups of clients. Sometimes even individual PCs or workstations are enabled for direct access of the storage devices on these so-called xe2x80x9cstorage area networksxe2x80x9d or SANs.
Supporting an ever growing variety of client and server platforms has proven vexing to designers of storage area networks. One problem is that of providing client support for the myriad of existing and emerging server volume managers. These are modules, typically, executing in software at the operating system level, that translate or map between logical addresses used, e.g., by the file system, and physical addresses on the storage devices. A volume manager can be used, for example, to divide a single storage device (e.g., a disk drive) into multiple logical drives or partitions. Likewise, it permits multiple physical drives to be treated as one large logical drive. One popular application of volume management is for RAID storage, which improves data access by interleaving or xe2x80x9cstripingxe2x80x9d data from one or more logical volumes across one or more physical drives, and which improves data integrity xe2x80x9cmirroringxe2x80x9d data written to one logical volume onto multiple physical volumes (or multiple physical areas within one volume).
Typically, volumes created by one platform cannot be interpreted by another platform. Thus, some makers limit SANs to only a single platform, insuring that clients and servers will have the same volume managers and, thereby, that the clients can properly access volumes created by the server. Another solution is to xe2x80x9cportxe2x80x9d the server platform volume manager to each client platformxe2x80x94put another way, to provide, for each server platform supported by a SAN, variants of the volume manager software capable of executing on each of the potential client platforms. While the latter is desirable from a customer perspective, it places an enormous burden on SAN makers and volume management makers alike. Though they may be competitors, companies in both camps must provide software that supports the other""s products and, often, must collaborate on the details of that software. Customers may be inconvenienced, as well, having to upgrade and/or reinstall their software to accommodate newly supported platforms.
The foregoing are among the objects attained by the invention which provides, in one aspect, an improved digital data processing system, e.g., storage area network of the type having a first digital data processor, e.g., a SAN server, and a second digital data processor, e.g., a SAN client, coupled to one another and to one or more storage units, e.g., disk drives. A volume is stored on one or more of the storage devices, with at least two of its blocks residing at locations that are not contiguous with one another.
The improvement is characterized by transmission from the first to the second digital data processor of one or more addresses, each for a portion of the volume residing on each storage device. These can constitute, in total, fewer such addresses than would be provided in a canonical map of the volume and, indeed, can comprise (by way of non-limiting example) a start address for the blocks that make up a requested file or volume on each device where the volume resides.
The improvement is further characterized by an interpreter on the second digital data processor that interprets (or xe2x80x9cexecutesxe2x80x9d) p-code or other intermediate code or other software (e.g., symbolic or methodological description) to determine physical locations of the blocks that comprise the volume as a function of the addresses received from the first digital data processor. That software, according to aspects of the invention, embodies a methodology for determining the physical block addresses of a volume and/or a file thereon, e.g., from the start address(es). It can, according to further aspects of the invention, be transmitted by the first digital data processor to the second digital data processor, though it can be sourced from elsewhere, as well.
Further aspects of the invention provide a storage area network as described above in which the first digital data processor operates under a first software platform and the second digital data processor operates under a second software platform that differs from the first software platform. Thus, for example, the first platform can be AIX(trademark), while the second platform can be Windows(trademark), Solaris(trademark), or so forth.
Still further aspects of the invention provide a storage area network or other digital processing system as described above in which the volume is created by a volume manager executing on the first digital data processor under the first software platform. Correspondingly, the second digital data processor executes at least a limited second volume manager for at least one of recognizing and accessing the volume or file at the determined physical addresses.
Yet still further aspects of the invention provide methods of operating a digital data processing system or storage area network paralleling the operations described above.
Networks, systems and methods according to the invention have several advantages over the prior art. Among these, intermediate or other code for determining the volume or file block physical addresses can be transmitted to and/or installed on the client digital data processors independently of any other code defining the network or system. Moreover, once familiar with the environment in which the intermediate or other code will be interpreted (or executed), makers of server volume management systems can develop code for use on the clients without revealing that code to makers of the storage area networks. This can be particularly beneficial, by way of non-limiting example, where the volume management maker utilizes proprietary techniques for striping or other RAID support.
These and other aspects of the invention are evident in the drawings and in the description that follows.